<?php
//匿名回调
//array_filter($array)  通过回调函数过滤数组中的单元

$arr = array(
   array('name'=>"孙建魁",'sex'=>'男','age'=>20) ,
    array('name'=>"徐枭雄",'sex'=>'女','age'=>18) ,
    array('name'=>"高洛峰",'sex'=>'男','age'=>10) ,
    array('name'=>"小豪",'sex'=>'男','age'=>20) ,
    
);


//因为是普通函数，可以任意调用
function demo($v) {
    if ($v['sex']!='女') {
        return TRUE;
    }else {
        
        return FALSE;
    }
   
}
//因为是普通函数，可以任意调用
// $res = demo(array('sex'=>'女'));
// var_dump($res);

// $res = array_filter($arr,'demo');
// var_dump($res);

//匿名回调
$res = array_filter($arr,function ($v) {
    if ($v['sex']!='女') {
        return 1;
    }else {
        
        return 0;
    }
});

var_dump($res);


//伪造系统函数array_filter
function my_filter(array $arr,$func) {
    $array = [];
    foreach ($arr as $k=>$v){
        if ($func($v)) {
           $array[$k] = $v ;
        }
        
    }
    return $array;
}

my_filter($arr,'demo');//一种调用方式
//另一种调用方式

$r = my_filter($arr,function ($v) {
    return $v['sex']!='女'?true:false;
});

var_dump($r);
